Nun, diese Diskussion zur Schichtenstruktur hat uns gezeigt, dass Rechensysteme letztendlich
mehr ebenen Maschinen sind.
Maschinen, die aus einer Hierarchie von virtuellen Maschinen zusammengesetzt sind.
Wir werden dann diesen Begriff der Maschine und Prozessor, wie die sich unterscheiden,
wie die, die sich sagen, was die gemeinsam haben, denn jetzt im Verlauf dieses Vorlesungsteils
noch etwas eingehender betrachten.
Im zweiten Block später werde ich dann erläutern, wie denn diese Virtualisierung wieder aufgehoben
wird.
Denn wir müssen ja nachher von der scheinbaren Maschine zur hin, zur realen Maschine kommen,
also eine Endvirtualisierung durchführen.
Darauf werde ich dann im zweiten Block eingehen und dem Zusammenhang schauen wir uns auch
so Besonderheiten an, nämlich die sogenannten Ausnahmesituationen, wie die denn praktisch
einzuordnen sind in so einem mehr ebenen Maschinenmodell.
Nun, wir haben die Aufgabenstellung einerseits und wir wollen für die Aufgabenstellung eine
Problemlösung haben.
Wir haben gesehen, dass praktisch wie das Problem in einer entsprechend geeigneten Hochsprache
formulieren können, wir aber letztendlich für die Ausführung auf einem Prozessor,
auf einer realen Maschine, hinkommen müssen zu Darstellungen, die es ermöglichen, CPU-Steuerinformation
nachher entsprechend auszugeben und so dass wir dann nachher auch von der Ausführung eines
Programms sprechen können.
Nun, dazwischen existiert eben die semantische Lücke, wie wir eben festgestellt haben.
Nun, der Ausmaß dieser Lücke ist unterschiedlich und wirklich sehr fallabhängig.
Wir können eben ein gleichbleibendes Problem uns mal betrachten und dann werden wir sagen
können, sobald wir die Plattform wechseln, die letztendlich diese untere Kante in diesem
Kasten hier ausmacht, dann wird auch diese semantische Lücke variieren.
Ein einfaches Beispiel wäre etwa, indem wir annehmen würden, hier die CPU-Steuerinformation
betreffen einen CISC, einen Complex Instruction Set Computer, wie einen x86 etwa und wenn
wir unser portables Hochsprachenprogramm denn übertragen wollen auf einen anderen Prozessor,
auf einen RISC, wie ein Power PC oder ein ARM etwa, dann werden wir mal sehen, dass diese
semantische Lücke einfach schon größer wird, weil nämlich der Befehlssatz dieses Power
PCs oder dieses ARMs einfach elementarer und einfacher aufgebaut ist, als der Befehlssatz
eines x86.
Das heißt, man braucht im Regelfall mehr Maschinenbefehle, um dasselbe Programm letztendlich,
das ein bestimmtes Problem löst, zur Ausführung zu bringen.
Andererseits können wir auch sagen, bei gleichbleibender Plattform wird eben die semantische Lücke
mit den Problemen variieren können.
Damit ist jetzt weniger gemeint, dass wir hier oben komplett unterschiedliche Programme,
sagen wir mal ein Betriebssystem einerseits, einen Compiler oder ein Anwendungsprogramm
haben, nehmen wir letztendlich dasselbe Problem, was aber in unterschiedlichen Implementierungen
realisiert werden kann, in Programmen, den nachher formuliert werden kann, wo denn die
eine Realisierung, die eine Programmstruktur komplexer ist, aufwendiger ist, dafür aber
vielleicht schneller abläuft als eine andere Programmrepräsentation, die langsamer abläuft,
dafür aber auch weniger speicher zum Beispiel verbraucht.
Und wir deshalb durchaus auch sehen können, dass die semantische Lücke, obwohl das Problem
gleich geblieben ist, mit Wechsel der Plattform variiert.
Der Lückenschluss, wie wir es vorher schon an dem Beispiel gesehen haben, den wollen
wir ganzheitlich wirklich betrachten und er ist ja auch wirklich ganzheitlich anzugehen.
Was wir jetzt gleich sehen werden, ist nicht etwa ein Sprung von ganz oben nach ganz unten,
sondern wir haben kleine Schritte, die durchgeführt werden, um denn praktisch schrittweise diese
Lücke dann letztendlich zu schließen.
Presenters
Zugänglich über
Offener Zugang
Dauer
00:26:24 Min
Aufnahmedatum
2020-05-09
Hochgeladen am
2020-05-10 00:36:07
Sprache
de-DE